AlertDialog對話方塊是一個小型視窗,可提示使用者做決定或輸入其他資訊,比如說密碼錯誤或是確認動作。
setTitle():對話方塊的標題
setIcon():對話方塊的圖示
setMessage():對話方塊的訊息內容
setItems():對話方塊的列表內容
setPositiveButton():在對話方塊中加入右側的按鈕
setNegativeButton():在對話方塊中加入左側的按鈕
setNeutralButton():在對話方塊中加入中立的按鈕setPositiveButton,setNegativeButton,setNeutralButton這三個差別在於AlertDialog顯示時按鈕的位置,這些按鈕位置的功能都可以自己設計,所以確定鍵不一定就要放在setPositiveButton,可自行調整。
setCancelable():禁用返回鍵
setCanceledOnTouchOutside():點擊灰色部分不消失
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("這裡是標題");
alertDialog.setIcon(R.drawable.icon);
alertDialog.setMessage("這裡是內容");
alertDialog.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "確定" ,Toast.LENGTH_SHORT).show();//右
}
});
alertDialog.setNegativeButton("中立", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "中立", Toast.LENGTH_SHORT).show();//中
}
});
alertDialog.setNeutralButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();//左
}
});
alertDialog.setCancelable(false);//禁用返回
alertDialog.setCanceledOnTouchOutside(false);//點擊灰色部分不消失
alertDialog.show();//一定要show出來
}
});
//列表對話方塊
bt4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
String[] str = {"太陽", "月亮", "地球", "火星", "木星", "水星", "土星", "天王星", "海王星"};
alertDialog.setTitle("列表對話框");
alertDialog.setItems(str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你選擇了:" + str[i], Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();
}
});
再res/laout新增一個XML
然後開始設計自己想要的樣式
我的長這樣
最後用inflater去加載剛剛自訂的樣式
放入setView()就完成了
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = MainActivity.this.getLayoutInflater();
alertDialog.setView(inflater.inflate(R.layout.layout_dialog,null));
alertDialog.show();
}
});
最後成果